<@compress single_line=true>
<script type="text/javascript">
    require([],function(){

    beforeClick = function(treeId, treeNode) {
      var zTree = jQuery.fn.zTree.getZTreeObj("treeDemo");
      zTree.checkNode(treeNode, !treeNode.checked, null, true);
      return false;
    };
    
    onCheck = function(e, treeId, treeNode) {
      var zTree = jQuery.fn.zTree.getZTreeObj("treeDemo"),
      nodes = zTree.getCheckedNodes(true),
      v = "";
      for (var i=0, l=nodes.length; i<l; i++) {
        v += nodes[i].name + ",";
      }
      if (v.length > 0 ) v = v.substring(0, v.length-1);
      var cityObj = jQuery("#citySel");
      cityObj.attr("value", v);
    };

    showMenu = function() {
      var cityObj = jQuery("#citySel");
      var cityOffset = jQuery("#citySel").position();
      jQuery("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");

      jQuery("body").bind("mousedown", onBodyDown);
    };
    hideMenu = function() {
      jQuery("#menuContent").fadeOut("fast");
      jQuery("body").unbind("mousedown", onBodyDown);
    };
    onBodyDown = function(event) {
      if (!(event.target.id == "menuBtn" || event.target.id == "citySel" || event.target.id == "menuContent" || jQuery(event.target).parents("#menuContent").length>0)) {
        hideMenu();
      }
    };
    var setting = {
      check: {
        enable: true,
        chkStyle: "radio",
        radioType: "all"
      },
      view: {
        dblClickExpand: false
      },
      data: {
        simpleData: {
          enable: true
        }
      },
      callback: {
        beforeClick: beforeClick,
        onCheck: onCheck
      }
    };

    var zNodes =[
      {id:1, pId:0, name:"北京"},
      {id:2, pId:0, name:"天津"},
      {id:3, pId:0, name:"上海"},
      {id:6, pId:0, name:"重庆"},
      {id:4, pId:0, name:"河北省", open:true, nocheck:true},
      {id:41, pId:4, name:"石家庄"},
      {id:42, pId:4, name:"保定"},
      {id:43, pId:4, name:"邯郸"},
      {id:44, pId:4, name:"承德"},
      {id:5, pId:0, name:"广东省", open:true, nocheck:true},
      {id:51, pId:5, name:"广州"},
      {id:52, pId:5, name:"深圳"},
      {id:53, pId:5, name:"东莞"},
      {id:54, pId:5, name:"佛山"},
      {id:6, pId:0, name:"福建省", open:true, nocheck:true},
      {id:61, pId:6, name:"福州"},
      {id:62, pId:6, name:"厦门"},
      {id:63, pId:6, name:"泉州"},
      {id:64, pId:6, name:"三明"}
     ];
    jQuery.fn.zTree.init(jQuery("#treeDemo"), setting, zNodes);
    });
</script>
Test: <input id="citySel" type="text" readonly value="" style="width:120px;" onclick="showMenu();" />
<div id="menuContent" class="menuContent" style="display:none; position: absolute;">
  <ul id="treeDemo" class="ztree" style="margin-top:0; width:180px; height: 300px;"></ul>
</div>
</@compress>